using System;

namespace SpellCenter.Core
{
    public interface ITaskMonitor
    {
      void OnTaskStarted(int subTaskCount);

      int StepCount
      {
        get;
      }

      void OnStepStarted(string description);

      string StepDescription
      {
        get;
      }

      void OnStepFinished();

      int StepsCompletedCount
      {
        get;
      }

      void CancelTask();

      bool IsCancelled
      {
        get;
      }

      void OnTaskFinished();
    }
}